let a = Symbol('1')
let b = Symbol('2')
console.log(a == b);
/**
 * Symbol具有唯一性，其他方式创建的Symbol不可能与另外的Symbol相等，基于这个唯一特性
 * Symbol的使用场景：
 * 1、可以作为唯一的属性名字，避免冲突
 * 2、使用第三方库的时候，为了避免产生冲突，可以用Symbol自定义自己的属性
 * 3、用于自定义对象的迭代器，使得对象可以被for...of...遍历
 * 4、Symbol作为对象属性的隐藏标识：Symbol类型的属性不会出现在常规的对象遍历中，获取用getOwnPropertySymbols(obj)
 */
const obj = {
    [Symbol.iterator]: function* () {
        yield 1
        yield 2
        yield 3
    }
}
for(let item of obj) {
    console.log(item);
}